package com.cyan.note.service.manager;

import com.cyan.note.common.ApiResult;
import com.cyan.note.dto.manager.dashboard.*;

import java.util.List;

/**
 * 店长端-工作台服务接口
 * 
 * @author ZhangzhenYu
 * @since 2025-01-15
 */
public interface ManagerDashboardService {

    /**
     * 获取工作台概览数据
     */
    ApiResult<DashboardOverviewDTO> getDashboardOverview(Long shopId);

    /**
     * 获取今日核心统计
     */
    ApiResult<TodayStatsDTO> getTodayStats(Long shopId);

    /**
     * 获取营收趋势数据
     */
    ApiResult<List<RevenueTrendDTO>> getRevenueTrend(Long shopId, Integer days);

    /**
     * 获取打手状态概览
     */
    ApiResult<WorkerStatusOverviewDTO> getWorkerStatusOverview(Long shopId);

    /**
     * 获取进行中订单监控
     */
    ApiResult<List<ActiveOrderDTO>> getActiveOrders(Long shopId);

    /**
     * 获取客户统计概览
     */
    ApiResult<CustomerStatsDTO> getCustomerStats(Long shopId);

    /**
     * 获取服务统计数据
     */
    ApiResult<List<ServiceStatsDTO>> getServiceStats(Long shopId, Integer days);

    /**
     * 获取异常监控数据
     */
    ApiResult<List<AlertDTO>> getAlerts(Long shopId);

    /**
     * 获取快速操作数据
     */
    ApiResult<QuickActionsDTO> getQuickActions(Long shopId);

    /**
     * 获取最近活动日志
     */
    ApiResult<List<RecentActivityDTO>> getRecentActivities(Long shopId, Integer limit);

    /**
     * 获取月度汇总报告
     */
    ApiResult<MonthlyReportDTO> getMonthlyReport(Long shopId, String month);

    /**
     * 刷新数据缓存
     */
    ApiResult<Void> refreshDashboard(Long shopId);
}